package com.hongxun.project.assets.iDevice.service;

import java.util.List;
import java.util.UUID;

import com.hongxun.common.utils.bean.BeanUtils;
import com.hongxun.project.assets.iBoxes.domain.IBoxes;
import com.hongxun.project.assets.pBoxes.domain.PBoxes;
import com.hongxun.project.assets.pDevice.domain.PDevice;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hongxun.project.assets.iDevice.mapper.IDeviceMapper;
import com.hongxun.project.assets.iDevice.domain.IDevice;
import com.hongxun.project.assets.iDevice.service.IIDeviceService;
import com.hongxun.common.utils.text.Convert;

/**
 * 配电设备基类 服务层实现
 * 
 * @author hongxun
 * @date 2019-03-19
 */
@Service
public class IDeviceServiceImpl implements IIDeviceService 
{
	@Autowired
	private IDeviceMapper iDeviceMapper;

	/**
     * 查询配电设备基类信息
     * 
     * @param id 配电设备基类ID
     * @return 配电设备基类信息
     */
    @Override
	public IDevice selectIDeviceById(String id)
	{
	    return iDeviceMapper.selectIDeviceById(id);
	}
	
	/**
     * 查询配电设备基类列表
     * 
     * @param iDevice 配电设备基类信息
     * @return 配电设备基类集合
     */
	@Override
	public List<IDevice> selectIDeviceList(IDevice iDevice)
	{
	    return iDeviceMapper.selectIDeviceList(iDevice);
	}
	
    /**
     * 新增配电设备基类
     * 
     * @param iDevice 配电设备基类信息
     * @return 结果
     */
	@Override
	public int insertIDevice(IDevice iDevice)
	{
		iDevice.setId(UUID.randomUUID().toString());
	    return iDeviceMapper.insertIDevice(iDevice);
	}
	
	/**
     * 修改配电设备基类
     * 
     * @param iDevice 配电设备基类信息
     * @return 结果
     */
	@Override
	public int updateIDevice(IDevice iDevice)
	{
	    return iDeviceMapper.updateIDevice(iDevice);
	}

	/**
     * 删除配电设备基类对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	@Override
	public int deleteIDeviceByIds(String ids)
	{
		return iDeviceMapper.deleteIDeviceByIds(Convert.toStrArray(ids));
	}


	public void file(List<PDevice> pDevice) {
		for (PDevice p : pDevice) {
			if (p.getDatastate().equals("删除")) {
				deleteIDeviceByIds(p.getId());
			} else {
				IDevice i = new IDevice();
				BeanUtils.copyBeanProp(i, p);
				if (selectIDeviceById(p.getId()) != null) {
					updateIDevice(i);
				} else {
					iDeviceMapper.insertIDevice(i);
				}
			}
		}
	}


	@Override
	public List<IDevice> getIDeviceGrou(IDevice iDevice){
		return iDeviceMapper.getIDeviceGrou(iDevice);
	}

	@Override
	public List<IDevice> getBigType(IDevice iDevice){
		return iDeviceMapper.getBigType(iDevice);
	}



}
